package com.linxuan.reggie.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.linxuan.reggie.dto.DishDto;
import com.linxuan.reggie.dto.SetmealDto;
import com.linxuan.reggie.entity.Setmeal;

import java.util.List;

public interface SetmealService extends IService<Setmeal> {

    /**
     * 新增套餐，同时要保持与菜品的关联关系
     * @param setmealDto 使用Dto来接收前端传过来的参数
     */
    void saveWithDish(SetmealDto setmealDto);

    /**
     * 删除套餐，同时要删除菜品的关系以及图片
     * @param id 需要删除套餐的ID
     */
    void removeWithDishImgById(String id);

    /**
     * 查询套餐数据，并回显至前端
     * @param id 需要查询的套餐ID
     * @return 前端需要的数据以Dto思想传输过去
     */
    SetmealDto getByIdWithDish(String id);

    /**
     * 修改套餐信息，因为要对两个表操作，所以自定义方法
     * @param setmealDto 前端传过来的SetmealDto数据类型
     */
    void updateWithDish(SetmealDto setmealDto);

    /**
     * 通过套餐ID查询套餐关联的菜品详细数据并封装之DTO类型里面
     * @param id 套餐ID
     * @return 套餐关联的所有菜品详细数据
     */
    List<DishDto> getDishDtoBySetmealId(String id);
}
